package com.example.partyfee.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.example.partyfee.dto.PartyMemberDTO;
import com.example.partyfee.dto.PartyMemberQueryDTO;
import com.example.partyfee.entity.PartyMember;
import org.springframework.web.multipart.MultipartFile;

import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

public interface PartyMemberService {
    
    /**
     * 创建党员
     */
    void createPartyMember(PartyMemberDTO partyMemberDTO);
    
    /**
     * 更新党员信息
     */
    void updatePartyMember(Long id, PartyMemberDTO partyMemberDTO);
    
    /**
     * 删除党员
     */
    void deletePartyMember(Long id);
    
    /**
     * 获取党员详情
     */
    PartyMember getPartyMember(Long id);
    
    /**
     * 分页查询党员列表
     */
    IPage<PartyMember> getPartyMemberPage(PartyMemberQueryDTO queryDTO);
    
    /**
     * 导入党员数据
     *
     * @param file Excel文件
     * @return 导入结果信息
     */
    List<String> importPartyMembersFromExcel(MultipartFile file) throws IOException;
    
    /**
     * 批量保存党员数据
     *
     * @param partyMembers 党员数据列表
     */
    void batchSavePartyMembers(List<PartyMember> partyMembers);
    
    /**
     * 导出党员数据
     *
     * @param queryDTO 查询条件
     * @param response HTTP响应对象
     */
    void exportPartyMembersToExcel(PartyMemberQueryDTO queryDTO, HttpServletResponse response) throws IOException;
} 